//----------------------------------------------------------------------------
//
// (C) Copyrights MARIN/MSCN  2004 
//
//----------------------------------------------------------------------------
//
// $Source: $
//
// $State: Exp $
//
// $Locker:  $
//
// $Revision: 1.1 $
//
// $Date: 2002/06/11 14:00:11 $
//
// $Author: mscn $
//
// $Contractor: $
//
// $Project: $
//
// $Log: types.h $
//
// $Description: $
//
// $End: $
//
//----------------------------------------------------------------------------

#ifndef __mst_types_h__
#define __mst_types_h__

#if defined(WIN32) && !defined(WIN32_LEAN_AND_MEAN)
#define WIN32_LEAN_AND_MEAN 1
#endif

#include <sys/types.h>
#include "sys/sys.h"

#ifdef WIN32

typedef unsigned long mode_t;

#ifndef O_CREAT
#define O_CREAT _O_CREAT
#endif

#ifndef S_IRUSR
#define S_IRUSR _S_IREAD
#endif

#ifndef S_IWUSR
#define S_IWUSR _S_IWRITE
#endif

typedef struct { int dummy; } siginfo_t;
typedef unsigned long sigset_t;

#ifdef uuid_t
#undef uuid_t
#endif

#endif

namespace mst {

/*! \typedef unsigned long uuid_t
\brief unique id type definition
*/
typedef unsigned long uuid_t;

/*! \typedef double Time
\deprecated
\brief time type definition
*/
typedef double Time;

/*! \typedef double Seconds
\brief seconds type definition
*/
typedef double Seconds;

/*!
\typedef mst_uint32_t uint32_t
\brief 32 bit opaque type
\ingroup io
*/
typedef mst_uint32_t uint32_t;

/*!
\typedef mst_int32_t int32_t
\brief 32 bit opaque type
\ingroup io
*/
typedef mst_int32_t int32_t;

/*!
\typedef mst_uint64_t uint64_t
\brief 64 bit opaque type
\ingroup io
*/
typedef mst_uint64_t uint64_t;

/*!
\typedef mst_int64_t int64_t
\brief 64 bit opaque type
\ingroup io
*/
typedef mst_int64_t int64_t;

}

#endif

